package com.telcordia.cvas.rpn;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class ANewlyCreatedRpnCalculatorShould {
	private RpnCalculator rpnCalculator;

	@Before
	public void init() {
		rpnCalculator = new RpnCalculator();
	}
	
	@Test
	public void calculateTheFactorialOf0ToBe1() {
		rpnCalculator.factorial();
		assertEquals(1, rpnCalculator.getXRegister());
	}
	
	@Test
	public void calculateTheFactorialOf5ToBe120() {
		rpnCalculator.setXRegister(5);
		rpnCalculator.factorial();
		assertEquals(120, rpnCalculator.getXRegister());
	}
	
	@Test
	public void resultIn0WhenAddingWithNoNumbers() {
		rpnCalculator.add();
		assertEquals(0, rpnCalculator.getXRegister());
	}
	
	@Test
	public void allowsItXRegsiterToBeSet() {
		rpnCalculator.setXRegister(42);
		assertEquals(42, rpnCalculator.getXRegister());
	}
	
	@Test
	public void initiallyHaveZero() {
		assertEquals(0, rpnCalculator.getXRegister());
	}
}
